﻿

#region using namespace
using System.Collections.Generic;
using System.Linq;
using DTO;
#endregion

namespace DAO
{
    public class DuLieuDAO
    {



        //lay tat ca cac thuoc tinh cua bang du lieu.
        public static List<DuLieuDTO> getAllDuLieu()
        {
            IList<DULIEU> dlieu;
            List<DuLieuDTO> lstdulieu = new List<DuLieuDTO>();
            DuLieuDTO dulieu = null;

            using (var context = new DataContext(GlobalDatabase.ConnectString))
            {
                dlieu = (from dl in context.DULIEUs select dl).ToList();
            }


            // chuyen tu IList<DULIEU> sang IList<DuLieuDTO> 
            for (int i = 0; i < dlieu.Count; i++)
            {
                dulieu = new DuLieuDTO();

                dulieu.MaDuLieu = dlieu[i].MaDuLieu;
                dulieu.MaTenDiaDiem = (int)dlieu[i].MaTenDiaDiem;
                dulieu.MaDuong = (int)dlieu[i].MaDuong;
                dulieu.KinhDo = (double)dlieu[i].KinhDo;
                dulieu.MaPhuong = (int)dlieu[i].MaPhuong;
                dulieu.MaQuanHuyen = (int)dlieu[i].MaQuanHuyen;
                dulieu.MaTinhThanh = (int)dlieu[i].MaTinhThanh;
                dulieu.SoNha = dlieu[i].SoNha;
                dulieu.ViDo = (int)dlieu[i].ViDo;
                dulieu.MaDichVu = (int)dlieu[i].MaDichVu;
                dulieu.ChuThich = dlieu[i].ChuThich;


                lstdulieu.Add(dulieu);
            }

            return lstdulieu;
        }

        // search DuLieuDTO khi biet ma dich vu va ma quan
        public List<DuLieuDTO> Search_by_maQuanHuyen(int maDichVu, int maQuanHuyen)
        {
            List<DuLieuDTO> lstDuLieuDTO = new List<DuLieuDTO>();
            List<DuLieuDTO> lst = getAllDuLieu();
            DuLieuDTO dulieuDTO = null;

            foreach(DuLieuDTO dl in lst)
            {
                if (dl.MaDichVu == maDichVu && dl.MaQuanHuyen == maQuanHuyen)
                {
                    dulieuDTO = new DuLieuDTO();

                    dulieuDTO.MaQuanHuyen = dl.MaQuanHuyen;
                    dulieuDTO.MaPhuong = dl.MaPhuong;
                    dulieuDTO.MaTenDiaDiem = dl.MaTenDiaDiem;
                    dulieuDTO.MaTinhThanh = dl.MaTinhThanh;
                    dulieuDTO.SoNha = dl.SoNha;
                    dulieuDTO.ViDo = dl.ViDo;
                    dulieuDTO.MaDuLieu = dl.MaDuLieu;
                    dulieuDTO.MaDichVu = dl.MaDichVu;
                    dulieuDTO.KinhDo = dl.KinhDo;

                    lstDuLieuDTO.Add(dulieuDTO);
                }
            }
            return lstDuLieuDTO;    
        }

         // search DuLieuDTO khi biet madich vu va ma duong
        public List<DuLieuDTO> Search_by_maDuong(int maDichVu, int maDuong)
        {
            List<DuLieuDTO> lstDuLieuDTO = new List<DuLieuDTO>();
            List<DuLieuDTO> lst = getAllDuLieu();
            DuLieuDTO dulieuDTO = null;

            foreach (DuLieuDTO dl in lst)
            {
                if (dl.MaDichVu == maDichVu && dl.MaQuanHuyen == maDuong)
                {
                    dulieuDTO = new DuLieuDTO();

                    dulieuDTO.MaQuanHuyen = dl.MaQuanHuyen;
                    dulieuDTO.MaPhuong = dl.MaPhuong;
                    dulieuDTO.MaTenDiaDiem = dl.MaTenDiaDiem;
                    dulieuDTO.MaTinhThanh = dl.MaTinhThanh;
                    dulieuDTO.SoNha = dl.SoNha;
                    dulieuDTO.ViDo = dl.ViDo;
                    dulieuDTO.MaDuLieu = dl.MaDuLieu;
                    dulieuDTO.MaDichVu = dl.MaDichVu;
                    dulieuDTO.KinhDo = dl.KinhDo;

                    lstDuLieuDTO.Add(dulieuDTO);
                }
            }
            return lstDuLieuDTO;
        }       

        // search voi so nha
        public List<DuLieuDTO> Search_by_soNha(string soNha)
        {
            List<DuLieuDTO> lstDuLieuDTO = new List<DuLieuDTO>();
            List<DuLieuDTO> lst = getAllDuLieu();
            DuLieuDTO dulieuDTO = null;

            foreach (DuLieuDTO dl in lst)
            {
                if (dl.SoNha == soNha)
                {
                    dulieuDTO = new DuLieuDTO();

                    dulieuDTO.MaQuanHuyen = dl.MaQuanHuyen;
                    dulieuDTO.MaPhuong = dl.MaPhuong;
                    dulieuDTO.MaTenDiaDiem = dl.MaTenDiaDiem;
                    dulieuDTO.MaTinhThanh = dl.MaTinhThanh;
                    dulieuDTO.SoNha = dl.SoNha;
                    dulieuDTO.ViDo = dl.ViDo;
                    dulieuDTO.MaDuLieu = dl.MaDuLieu;
                    dulieuDTO.MaDichVu = dl.MaDichVu;
                    dulieuDTO.KinhDo = dl.KinhDo;

                    lstDuLieuDTO.Add(dulieuDTO);
                }
            }
            return lstDuLieuDTO;
        }

        public List<DuLieuDTO> Search_by_maDichVu(int maDichVu)
        {
            List<DuLieuDTO> lstDuLieuDTO = new List<DuLieuDTO>();
            List<DuLieuDTO> lst = getAllDuLieu();
            DuLieuDTO dulieuDTO = null;

            foreach (DuLieuDTO dl in lst)
            {
                if (dl.MaDichVu == maDichVu)
                {
                    dulieuDTO = new DuLieuDTO();

                    dulieuDTO.MaQuanHuyen = dl.MaQuanHuyen;
                    dulieuDTO.MaPhuong = dl.MaPhuong;
                    dulieuDTO.MaTenDiaDiem = dl.MaTenDiaDiem;
                    dulieuDTO.MaTinhThanh = dl.MaTinhThanh;
                    dulieuDTO.SoNha = dl.SoNha;
                    dulieuDTO.ViDo = dl.ViDo;
                    dulieuDTO.MaDuLieu = dl.MaDuLieu;
                    dulieuDTO.MaDichVu = dl.MaDichVu;
                    dulieuDTO.KinhDo = dl.KinhDo;

                    lstDuLieuDTO.Add(dulieuDTO);
                }
            }
            return lstDuLieuDTO;
        }

        //search theo so nha, ma dich vu, ma tinh thanh, ma quan huyen, ma phuong, ma duong, ma ten dia diem
        public List<DuLieuDTO> Search(string soNha, int maDichVu, 
                                        int maTinhThanh, int maQuanHuyen, 
                                        int maPhuong, int maDuong, int maTenDiaDiem)
        {
            List<DuLieuDTO> lstDuLieuDTO = new List<DuLieuDTO>();
            List<DuLieuDTO> lst = getAllDuLieu();
            DuLieuDTO dulieuDTO = null;

            foreach (DuLieuDTO dl in lst)
            {
                if (dl.SoNha == soNha && dl.MaDichVu == maDichVu &&
                    dl.MaTinhThanh == maTinhThanh && dl.MaQuanHuyen == maQuanHuyen && 
                    dl.MaPhuong == maPhuong && dl.MaDuong == maDuong && dl.MaTenDiaDiem == maTenDiaDiem)
                {
                    dulieuDTO = new DuLieuDTO();

                    dulieuDTO.MaQuanHuyen = dl.MaQuanHuyen;
                    dulieuDTO.MaPhuong = dl.MaPhuong;
                    dulieuDTO.MaTenDiaDiem = dl.MaTenDiaDiem;
                    dulieuDTO.MaTinhThanh = dl.MaTinhThanh;
                    dulieuDTO.SoNha = dl.SoNha;
                    dulieuDTO.ViDo = dl.ViDo;
                    dulieuDTO.MaDuLieu = dl.MaDuLieu;
                    dulieuDTO.MaDichVu = dl.MaDichVu;
                    dulieuDTO.KinhDo = dl.KinhDo;

                    lstDuLieuDTO.Add(dulieuDTO);
                }
            }
            return lstDuLieuDTO;
        }
    }
}
